package com.newhero.product.module.sys.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.newhero.product.common.mybatis.plugins.pagination.Pagination;
import com.newhero.product.common.mybatis.service.IService;
import com.newhero.product.module.sys.model.Role;
import com.newhero.product.module.sys.model.vo.RoleVo;

public interface IRoleService extends IService<Role>{

	Map<String, Set<String>> selectAppMapByUserID(String userID);
	/**
	 * 检查当前角色有没有该应用
	 * @param appID	应用ID
	 * @param roleId	角色ID
	 * @return true 已经设置 false 没有设置
	 */
	boolean setIfSetted(String appID, String roleId);
	/**
	 * 为角色添加一个应用权限
	 * @param roleId
	 * @param appID
	 */
	public void addRoleAppData(String roleId, String appID);
	/**
	 * 移除当前角色一个应用权限
	 * @param roleId
	 * @param appID
	 */
	public void removeRoleAppData(String roleId, String appID);
	/**
	 * 为用户添加一个角色
	 * @param userId
	 * @param roleId
	 */
	public void addUserRoleData(String userId, String roleId);
	/**
	 * 移除用户某一角色
	 * @param userId
	 * @param roleId
	 */
	public void removeUserRoleData(String userId, String roleId);
	/**
	 * 根据用户ID获取拥有的角色名称集合
	 * @param userID
	 * @return
	 */
	Set<String> selectRoleNameSetByUserID(String userID);
	/**
	 * 
	 * <li>功能描述：查询角色的相关信息。
	 * @param page
	 * @param params
	 * @return
	 * List<RoleVo> 
	 * @author liangzhuoxin
	 */
	List<RoleVo> selectRoleListPage(Pagination page, Map<String, Object> params);
}
